﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BBMS.DLL.Forms.Base;
using BBMS.DLL.DataContract;
using BBMS.DLL.Base;
using ExcelLibrary.SpreadSheet;

namespace BBMS.DLL.Forms.Catalog.Counter
{
    public partial class frmCounterFilter : FrmFilterBase
    {
        public frmCounterFilter()
        {
            InitializeComponent();
            GetComboNganhHang();
        }

        private void GetComboNganhHang()
        {
            ArrayList arret = (new NganhHang()).GetAllObject();
            cbNganhHang.Items.Add(new KeyValuePair("", "Tất cả"));
            if (arret != null)
            {
                for (int i = 0; i < arret.Count; i++)
                {
                    NganhHang nh = (NganhHang)arret[i];
                    cbNganhHang.Items.Add(new KeyValuePair(nh.Ma, nh.Ten));
                }
            }
            cbNganhHang.SelectedIndex = 0;
        }
        public new static readonly string FunctionKey = "DMQuay";
        protected override string GetFunctionKey() { return "DMQuay"; }
        protected override BBMS.DLL.Base.ObjectBase GetObjectBase() { return new Quay(); }

        protected override void GenColHeaders()
        {
            lvList.Clear();
            lvList.Columns.Add("Mã", 80);
            lvList.Columns.Add("Tên Tiếng Việt", 250);
            lvList.Columns.Add("Tên Tiếng Anh", 250);
            lvList.Columns.Add("Thuộc nghành hàng", 250);
        }
        protected override ArrayList GenSampleData()
        {
            ArrayList ar = new ArrayList();
            ar.Add(new string[] {"Mã quầy","Tên Tiếng Việt", "Tên Tiếng Anh","Mã Nghành Hàng"});
            Quay quayList = new Quay();
            ArrayList arr = quayList.GetAllObject(fParams);
            if (arr != null)
            {
                for (int i = 0; i < arr.Count; i++)
                {
                    Quay q = (Quay)arr[i];
                    ar.Add(new string[] { q.Ma, q.Ten, q.TenTA, q.MaNganhHang });
                }
            }
          //  ar.Add(new string[] { "QTP", "Quầy thực phẩm", "Food counter", "NTP" });
            // define col width
            //ar.Add(new int[] { 100, 300, 100, 300 });
            return ar;
        }

        protected override ArrayList GetImportedList(Worksheet sheet)
        {
            ArrayList arret = new ArrayList();
            for (int i = 1; i < sheet.Cells.Rows.Count; i++)
            {
                Quay q = new Quay();
                Cell cell = sheet.Cells[i, 0];
                q.Ma = cell.Value.ToString();
                cell = sheet.Cells[i, 1];
                q.Ten = cell.Value.ToString();
                cell = sheet.Cells[i, 2];
                q.TenTA = cell.Value.ToString();
                cell = sheet.Cells[i, 3];
                q.MaNganhHang = cell.Value.ToString();
                arret.Add(q);

            }
            return arret;
        }

        protected override void UpdateFilterParams()
        {
            if (txtMa.Text.Trim() != "" || cbNganhHang.SelectedIndex != -1)
            {
                fParams = new FilterParams();
                if (txtMa.Text.Trim() != "")
                {
                    FilterCondition fcMa = new FilterCondition("Ma", "Ma", "%" + txtMa.Text.Trim() + "%", SQLOperator.LIKE);
                    fParams.ArParams.Add(fcMa);
                }

                if (cbNganhHang.SelectedIndex != 0)
                {
                    FilterCondition fcNganhHang = new FilterCondition("MaNganhHang", "MaNganhHang", ((KeyValuePair)cbNganhHang.SelectedItem).Key, SQLOperator.EQUAL);
                    fParams.ArParams.Add(fcNganhHang);
                }
                fParams.CurrentPage = 0;
            }
            else
            {
                MessageBox.Show(null, "Bạn phải nhập nội dung tìm kiếm", "Thông báo");
            }
        }

        protected override FrmEditBase CreateEditForm(BBMS.DLL.Base.ObjectBase obj)
        {
            return new frmCounterUpdate(obj);
        }

        protected override void AddNewObjectToList(BBMS.DLL.Base.ObjectBase obj)
        {
            ListViewItem it = new ListViewItem(((Quay)obj).Ma);
            it.SubItems.Add(((Quay)obj).Ten);
            it.SubItems.Add(((Quay)obj).TenTA);
            it.SubItems.Add(ObjectLists.NghanhHangList.getObjectName(((Quay)obj).MaNganhHang));
            it.Tag = obj;
            lvList.Items.Add(it);
        }

        protected override void UpdateObjectToList(BBMS.DLL.Base.ObjectBase obj)
        {
            foreach (ListViewItem it in lvList.Items)
            {
                if (((Quay)it.Tag).Ma == ((Quay)obj).Ma)
                {
                    it.SubItems[1].Text = ((Quay)obj).Ten;
                    it.SubItems[2].Text = ((Quay)obj).TenTA;
                    it.SubItems[3].Text = ObjectLists.NghanhHangList.getObjectName(((Quay)obj).MaNganhHang);
                    it.Tag = obj;
                    break;
                }
            }
        }
     
    }
}
